package com.yyj.dao;

import com.yyj.model.TPropertyPayment;
import com.yyj.model.TPropertyPaymentExample;
import java.util.List;

import com.yyj.web.protocol.req.BackendPaymentListReq;
import com.yyj.web.protocol.req.PaymentCountReq;
import com.yyj.web.protocol.req.PaymentQueryReq;
import com.yyj.web.protocol.resp.BackendPaymentListResp;
import com.yyj.web.protocol.resp.PaymentQueryResp;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

public interface TPropertyPaymentMapper {
    int countByExample(TPropertyPaymentExample example);

    int deleteByExample(TPropertyPaymentExample example);

    int deleteByPrimaryKey(Long id);

    int insert(TPropertyPayment record);

    int insertSelective(TPropertyPayment record);

    List<TPropertyPayment> selectByExampleWithRowbounds(TPropertyPaymentExample example, RowBounds rowBounds);

    List<TPropertyPayment> selectByExample(TPropertyPaymentExample example);

    TPropertyPayment selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") TPropertyPayment record, @Param("example") TPropertyPaymentExample example);

    int updateByExample(@Param("record") TPropertyPayment record, @Param("example") TPropertyPaymentExample example);

    int updateByPrimaryKeySelective(TPropertyPayment record);

    int updateByPrimaryKey(TPropertyPayment record);

    List<PaymentQueryResp> queryPaymentRecord(PaymentQueryReq paymentQueryReq);

    List<BackendPaymentListResp> queryBackendPaymentList(BackendPaymentListReq backendPaymentListReq);

    int queryPaymentNum(PaymentCountReq paymentCountReq);

    int queryWaterPaymentNum(PaymentCountReq paymentCountReq);
}